/*
 *    Copyright (c) 2018-2025, proj All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 * Redistributions of source code must retain the above copyright notice,
 * this list of conditions and the following disclaimer.
 * Redistributions in binary form must reproduce the above copyright
 * notice, this list of conditions and the following disclaimer in the
 * documentation and/or other materials provided with the distribution.
 * Neither the name of the proj developer nor the names of its
 * contributors may be used to endorse or promote products derived from
 * this software without specific prior written permission.
 * Author: proj
 */

package com.ykht.proj.activity.vo;

import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 订单和卡的关联表
 *
 * @author csg
 * @date 2021-05-21 14:22:31
 */
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "订单和卡的关联表")
public class VOrderCardVo extends Model<VOrderCardVo> {
private static final long serialVersionUID = 1L;

    /**
     * 
     */
    @ApiModelProperty(value="")
    private Long id;
    /**
     * 批次ID
     */
    @ApiModelProperty(value="批次ID")
    private String batchId;
    /**
     * 订单ID
     */
    @ApiModelProperty(value="订单ID")
    private Long orderId;
	@ApiModelProperty(value="订单编号")
	private String orderCode;
	/**
	 * 活动ID
	 */
	@ApiModelProperty(value="活动ID")
	private Long activityId;
	@ApiModelProperty(value="卡的原价")
	private BigDecimal cardPrice;
	@ApiModelProperty(value="实际支付价格")
	private BigDecimal cardActualPrice;
	@ApiModelProperty(value="优惠了多少金额")
	private BigDecimal cardReducePrice;
	/**
	 * 当前购买活动ID
	 */
	@ApiModelProperty(value="当前购买活动ID")
	private Long orderActivityId;
    /**
     * 核销码（卡激活码）
     */
    @ApiModelProperty(value="兑换码")
    private String redeemCode;
    @ApiModelProperty(value="兑换时间")
    private LocalDateTime redeemTime;

	/**
	 * 卡状态：0未兑换1已兑换 2已激活
	 */
	@ApiModelProperty(value="卡状态  0未兑换1已兑换 2已激活")
	private Integer cardStatus;

	@ApiModelProperty(value="卡状态  0未兑换1已兑换 2已激活")
	private String cardStatusShow;

	@ApiModelProperty(value="支付方式：支付方式： 0微信支付  1现金  2对公转账")
	private Integer payType;
	/**
	 * 支付单号
	 */
	@ApiModelProperty(value="支付单号")
	private String transactionId;
	/**
	 * 支付状态 0 待支付 1已完成  2已过期3已取消
	 */
	@ApiModelProperty(value="支付状态 0 待支付 1已完成  2已过期3已取消")
	private Integer payStatus;
	/**
	 * 支付时间
	 */
	@ApiModelProperty(value="支付时间")
	private LocalDateTime payTime;
    /**
     * 卡ID
     */
    @ApiModelProperty(value="卡ID")
    private Long cardId;

    /**
     * 卡类型：0普通卡（展示卡本身外貌）   1联名卡（展示企业自己设置的外貌）
     */
    @ApiModelProperty(value="卡类型：0普通卡（展示卡本身外貌）   1联名卡（展示企业自己设置的外貌）")
    private Integer cardType;
    /**
     * 卡名称
     */
    @ApiModelProperty(value="卡名称")
    private String cardName;
    /**
     * 卡背板图（卡片图）
     */
    @ApiModelProperty(value="卡背板图（卡片图）")
    private String cardImg;
    /**
     * 激活有效期:开始时间
     */
    @ApiModelProperty(value="激活有效期:开始时间")
	@JsonFormat(shape = JsonFormat.Shape.STRING,pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private LocalDateTime startTime;

	@ApiModelProperty(value="激活有效期:开始时间展示")
	private String startTimeShow;

    /**
     * 激活有效期:结束时间
     */
    @ApiModelProperty(value="激活有效期:结束时间")
	@JsonFormat(shape = JsonFormat.Shape.STRING,pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private LocalDateTime endTime;

	@ApiModelProperty(value="激活有效期:结束时间展示")
	private String endTimeShow;

    /**
     * 用户ID
     */
    @ApiModelProperty(value="用户ID")
    private Long personId;
    /**
     * 用户名
     */
    @ApiModelProperty(value="用户名")
    private String personName;
    /**
     * 手机号
     */
    @ApiModelProperty(value="手机号")
    private String personPhone;
    /**
     * 企业ID
     */
    @ApiModelProperty(value="企业ID")
    private Long enterpriseId;
    /**
     * 客戶类型：0个人  1企业
     */
    @ApiModelProperty(value="客戶类型：0个人  1企业")
    private Integer customerType;
    /**
     * 购买类型（订单来源）： 0小程序  1代客下单
     */
    @ApiModelProperty(value="购买类型（订单来源）： 0小程序  1代客下单")
    private Integer purchaseType;
    /**
     * 创建人
     */
    @ApiModelProperty(value="创建人")
    private Long createUser;
    /**
     * 修改人
     */
    @ApiModelProperty(value="修改人")
    private Long updateUser;
    /**
     * 创建时间
     */
    @ApiModelProperty(value="创建时间")
    private LocalDateTime createTime;
    /**
     * 更新时间
     */
    @ApiModelProperty(value="更新时间")
    private LocalDateTime updateTime;
    /**
     * 0可用1删除
     */
    @ApiModelProperty(value="0可用1删除")
    private Integer delFlag;
    /**
     * 租户ID
     */
    @ApiModelProperty(value="租户ID",hidden=true)
    private Integer tenantId;

	@ApiModelProperty(value="卡数量（企业购买数量）")
	private Integer cardCount;

	@ApiModelProperty(value="卡激活数量")
	private Integer activationVolume;

	@ApiModelProperty(value="卡未激活数量")
	private Integer notActiveVolume;

	@ApiModelProperty(value="会员卡号")
	private String vipAccount;

	@ApiModelProperty(value="企业员工名称")
	private String entStaffName;

}
